home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d15 / icondll.arc / ICONDLL.C next >
C/C++ Source or Header  |  1990-09-18  |  1KB  |  68 lines

  1. #include <dos.h>
  2. #include <io.h>
  3. #include <process.h>
  4. #include <string.h>
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7.  
  8.  
  9. void main(int argc, char *argv[])
  10. {
  11.     char    tempname[14];
  12.     FILE    *tempfile;
  13.     struct  find_t  fileinfo;
  14.     char    str[40];
  15.     int     i=0;
  16.     int     DeleteFlag;
  17.  
  18.     printf("ICONDLL - Combines *.ICO files into a .DLL file.\n");
  19.     printf("Copyright (c) 1990, James M. Curran.\n");
  20.  
  21.     if (argc > 1)
  22.         DeleteFlag= (int) strchr(strupr(argv[1]),'D');
  23.  
  24.     strcpy(tempname,"ICXXXXXX");
  25.  
  26.     if ( (mktemp(tempname)) == NULL) {
  27.         printf("Cannot create temporary file.\n");
  28.         exit(1);
  29.         }
  30.  
  31.     strcat(tempname,".RC");
  32.  
  33.     if (_dos_findfirst("*.ICO", _A_NORMAL, &fileinfo)==0) {
  34.         tempfile=fopen(tempname,"wt");
  35.         do {
  36.             sprintf(str,"%d\tICON\t%s\n",++i,fileinfo.name);
  37.             fwrite(str,sizeof(char),strlen(str),tempfile);
  38.            } while (_dos_findnext(&fileinfo)==0);
  39.         }
  40.     else {
  41.         printf("No .ICO files found in this directory.\n");
  42.         exit(2);
  43.         }
  44.  
  45.     fclose(tempfile);
  46.     system("COPY iconstub.exe icons.dll");
  47.  
  48.     errno=0;
  49.     if(spawnlp(P_WAIT,"rc","RC.EXE", tempname,"icons.dll",NULL)==-1){
  50.         perror(NULL);
  51.         printf("Could not run RC.exe.");
  52.         }
  53.  
  54.     if (DeleteFlag)
  55.         remove(tempname);
  56.  
  57.     tempname[strlen(tempname)-1]=0;
  58.     strcat(tempname,"ES");
  59.     remove(tempname);
  60.  
  61.     exit(0);
  62. }
  63.  
  64.  
  65.  
  66.  
  67.  
  68.